#pragma once
#include "KeyEvent.h"

/**
=====================================
Any implementing interfaces will be able
to test for input from a keyboard
=====================================
*/
class IKeyListener
{
public:
    IKeyListener() : m_Focus(false) {};

    /** Get the Key pressed */
    virtual void KeyPressed( const KeyEvent* keyEvent )=0;

    /** Get the Key Released */
    virtual void KeyReleased( const KeyEvent* keyEvent )=0;

    /** Decide to consume this event */
    void SetKeyFocus( bool focus ) { m_Focus = focus; };

    /** Should the Input device consume this event */
    bool HasKeyFocus() { return m_Focus; };

    virtual ~IKeyListener() {};

private:
    bool        m_Focus;        // focus identifier
};